System, method, and recording medium for tracking gaze with respect to a moving plane with a camera with respect to the moving plane

ABSTRACT

A gaze tracking system, method, and computer product for tracking an eye gaze on a screen of a device including a single monocular camera, the system including measuring a rotation of a hinged plane of a display screen with respect to the eye gaze, combining the rotation with a three-dimensional movement of the camera, a position of the camera being constant with respect to the display screen, and estimating a point of gaze localization on the display screen using the single monocular camera as the input, in absence of a sensor, and without performing a display screen calibration.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a Continuation Application of U.S. patentapplication Ser. No. 15/792,878, filed on Oct. 25, 2017, which is basedon U.S. application Ser. No. 15/223,674, filed on Jul. 29, 2016, theentire contents of which are hereby incorporated by reference.

BACKGROUND

The present invention relates generally to a gaze tracking system, andmore particularly, but not by way of limitation, to a system for eyegaze detection and tracking on devices enabled with a camera that isfixed with respect to a moving plane of a screen (e.g., a lap-top,web-cam mounted on a screen, etc.).

Conventional gaze tracking techniques can track gaze in three-dimensionsusing a two-dimensional monocular camera if the screen is stationary interms of angle. However, in a practical gaze tracking scenario, adistance and an angle of a user will change between a user and a device(e.g., a lap-top, web-cam mounted on a screen, etc.) because no user canbe expected to practically stay and hold a device at a static positionalong with the angle of the screen can change such as rotating a lap-topscreen at the hinge of the lap-top.

Further, conventional techniques for gaze estimation use screencalibration techniques involving mirrors in front of the cameras to getthe screen planes rotation and transformation matrix and hence plane.

Also, the algorithms that exist for conventional devices are not capableof working when the angle of the screen changes, thereby altering themapping of the distance of the human eye and the different points of thescreen from the original distance.

That is, the inventors have identified one technical problem of manytechnical problems in the conventional techniques that if the angle ofthe screen changes, then a re-mapping of the screen onto the cameraframe is required.

SUMMARY

In an exemplary embodiment, the present invention can provide a gazetracking system for tracking an eye gaze on a screen of a deviceincluding a camera, the system including a gaze vector calculatingcircuit configured to calculate a parametric equation of an eye gazevector passing through a pupil of a user and an eye ball center of theuser, a coordinate change computing circuit configured to compute afirst angle of the screen with respect to a fixed plane relative to thescreen based on a preset angle of the screen and an object, a planecalculating circuit configured to calculate a current plane of thescreen based on the first angle and a position of the camera withrespect to the screen, and an intersection calculating circuitconfigured to calculate an intersection of the eye gaze vectorcalculated by the gaze vector calculating circuit with the current planeequation calculated by the plane calculating circuit.

Further, in another exemplary embodiment, the present invention canprovide a gaze tracking method for tracking an eye gaze on a screen of adevice including a camera, the method including calculating a parametricequation of an eye gaze vector passing through a pupil of a user and aneye ball center of the user, computing a first angle of the screen withrespect to a fixed plane relative to the screen based on a preset angleof the screen and an object, calculating a current plane of the screenbased on the first angle and a position of the camera with respect tothe screen, and calculating an intersection of the eye gaze vectorcalculated by the calculating the parametric equation with the currentplane equation calculated by the calculating the current plane.

Even further, in another exemplary embodiment, the present invention canprovide a non-transitory computer-readable recording medium recording agaze tracking program for tracking an eye gaze on a screen of a deviceincluding a camera, the program causing a computer to perform:calculating a parametric equation of an eye gaze vector passing througha pupil of a user and an eye ball center of the user, computing a firstangle of the screen with respect to a fixed plane relative to the screenbased on a preset angle of the screen and an object, calculating acurrent plane of the screen based on the first angle and a position ofthe camera with respect to the screen, and calculating an intersectionof the eye gaze vector calculated by the calculating the parametricequation with the current plane equation calculated by the calculatingthe current plane.

There has thus been outlined, rather broadly, an embodiment of theinvention in order that the detailed description thereof herein may bebetter understood, and in order that the present contribution to the artmay be better appreciated. There are, of course, additional exemplaryembodiments of the invention that will be described below and which willform the subject matter of the claims appended hereto.

It is to be understood that the invention is not limited in itsapplication to the details of construction and to the arrangements ofthe components set forth in the following description or illustrated inthe drawings. The invention is capable of embodiments in addition tothose described and of being practiced and carried out in various ways.Also, it is to be understood that the phraseology and terminologyemployed herein, as well as the abstract, are for the purpose ofdescription and should not be regarded as limiting.

As such, those skilled in the art will appreciate that the conceptionupon which this disclosure is based may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present invention. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The exemplary aspects of the invention will be better understood fromthe following detailed description of the exemplary embodiments of theinvention with reference to the drawings.

FIG. 1 exemplarily shows a block diagram illustrating a configuration ofa gaze tracking system 100.

FIG. 2 exemplarily shows a high level flow chart for a gaze trackingmethod 200.

FIG. 3 exemplarily shows a pupil location calculation and a gaze vectorcalculation.

FIG. 4 exemplarily shows a coordinate change computing circuit 102initially calculating an angle of the screen.

FIG. 5 exemplarily shows the coordinate change computing circuit 102calculating a change in the angle of the screen from the initialposition.

FIG. 6 depicts a cloud computing node 10 according to an exemplaryembodiment of the present invention.

FIG. 7 depicts a cloud computing environment 50 according to anotherexemplary embodiment of the present invention.

FIG. 8 depicts abstraction model layers according to an exemplaryembodiment of the present invention.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

The invention will now be described with reference to FIGS. 1-8, inwhich like reference numerals refer to like parts throughout. It isemphasized that, according to common practice, the various features ofthe drawing are not necessarily to scale. On the contrary, thedimensions of the various features can be arbitrarily expanded orreduced for clarity. Exemplary embodiments are provided below forillustration purposes and do not limit the claims.

With reference now to FIG. 1, the gaze tracking system 100 includes agaze vector calculating circuit 101, a coordinate change computingcircuit 102, a plane calculating circuit 103, and an intersectioncalculating circuit 104. The gaze tracking system 100 includes aprocessor 180 and a memory 190, with the memory 190 storing instructionsto cause the processor 180 to execute each circuit of the gaze trackingsystem 100. The processor and memory may be physical hardwarecomponents, or a combination of hardware and software components.

Although the gaze tracking system 100 includes various circuits, itshould be noted that a gaze tracking system can include modules in whichthe memory 190 stores instructions to cause the processor 180 to executeeach module of the gaze tracking system 100.

Also, each circuit can be a stand-alone device, unit, module, etc. thatcan be interconnected to cooperatively produce a transformation to aresult.

Although as shown in FIGS. 6-8 and as described later, the computersystem/server 12 is exemplarily shown as one or more cloud computingnodes 10 of the cloud environment 50 as a general-purpose computingcircuit which may execute in a layer the gaze tracking system 100 (FIG.7), it is noted that the present invention can be implemented outside ofthe cloud environment.

The gaze vector calculating circuit 101 calculates a parametric equationof a gaze vector passing through a pupil and an eye ball center of theuser of a device 150 as detected by the camera 150 a. That is, the gazevector calculating circuit 101 estimates the three-dimensionalcoordinates of the eye corners and the pupil with respect to the cameraframe of the camera 150 a and calculates a head pose of a face of theuser with respect to the camera frame based on a storedthree-dimensional Head Model. From the head pose obtained, the gazevector calculating circuit 101 maps the three-dimensional coordinates ofthe eye corners and pupil with respect to the camera frame. It is notedthat the eye corners can include two corners of the eye (e.g., as shownin FIG. 3) or four corners of the eye to estimate the pupil location.

Further, it is noted that the camera is a camera 150 a with respect tothe screen (e.g., the camera position does not move with respect to aplane of the screen).

Based on the coordinates of the eye corners as shown in FIG. 3, the gazevector calculating circuit 101 calculates the eye-ball center coordinateusing equation (1) with O being the Eye ball Center; C1,C2 being EyeCorners; M being the midpoint between the eye corners (e.g., (C1+C2)/2);r being a Radius of the eye ball; and P being the Pupil position.O=M+r  (1)

Then, using the calculation of the eye ball center of equation (1), thegaze vector calculating circuit 101 calculates the parametric equationof the gaze vector passing through the pupil and the eye ball centerusing equation (2) where Vg is the Gaze Vector as shown in FIG. 3.Vg=P−O  (2)

Also, the gaze vector calculating circuit 101 compute the coordinates in(x, y, z) format for an object P. Object “P” can include any fixedposition, but preferably comprises the pupil position. The gaze vectorcalculating circuit 101 computes the object position, for example, usingalgorithms such as three-dimensional head pose computation, such ascamera focal length computation with many existing software such as“OpenCV” support such computation.

The coordinate change computing circuit 102 computes a first angle(“θ₁”) of the screen with respect to the base of the screen (e.g., afixed surface such as the base of a lap-top or a desk of a web-cam)using an initialization calculation (e.g., as shown in FIG. 4) bybootstrapping the screen to keep the hinge angled at 90-degrees from thebase of the screen (or some other degree that is pre-determined bypolicy or recommendation). The coordinate change computing circuit 102further continuously computes a second angle (“θ₂”) based on the firstangle (e.g., a previous angle).

Specifically, as shown in FIG. 4, “C₁” and “C₂” are positions of thecamera 150 a on the screen at a 90° angle with the origin at “O” (e.g.,screen is at a stationary registered plane or another predeterminedangle can be used as long as the angle is known) and at the second angleof “θ”. Taking “C₁” as the origin, (X, Y₁, Z₁) are the coordinates ofobject “P” and with “C₂” as the origin, (X, Y₂, Z₂) are the coordinatesof object “P”. The coordinates of “C₁” are (0, γ, 0) and the coordinatesof “C₂” are (0, γ sin(θ), γ cos(θ)) with “θ” being the angle of thescreen.

Therefore, the points can be represented using equations (3) and (4)below:−γ cos(θ)=Z ₂ −Z ₁  (3)γ−γ sin(θ)=Y ₂ −Y ₁  (4)

The initial angle of rotation of the screen including the camera 150 ais shown in equation (5) by the coordinate change computing circuit 102by solving equations (3) and (4) for “θ”.θ=cos⁻¹((Z ₁ −Z ₂)/γ)  (5)

Therefore, the initial angle of rotation of the screen including thecamera 150 a is shown in equation (3) by the coordinate change computingcircuit 102 solving for “θ”.

Further, the coordinate change computing circuit 102 can continuouslycalculate the angle of the screen after the first angle is initializedas shown in FIG. 5.

FIG. 5 depicts the screen of the device 150 moving to a new angle “θ₂”when the camera 150 a is at point “C₃”. It is noted that “θ₁” is thefirst angle of the screen from FIG. 4.

The new angle “θ₂” can be represented using equations (6) and (7) below:γ sin(θ₁)−γ sin(θ₂)=Y ₂ −Y ₁  (6)−γ cos(θ₁)+γ cos(θ₂)=Z ₂ −Z ₁  (7)

That is, any new angle of rotation of the screen including the camera150 a “θ ₂” can be continuously calculated by the coordinate changecomputing circuit 102 using equations (6) and (7) by solving for “θ₂”.

The plane calculating circuit 103 calculates an equation of the plane ofthe screen based on the angle of rotation of the screen (e.g., “θ” assolved using the above equations by the coordinate change computingcircuit 102).

It is noted that “ψ” represents the acute angle of the angle of rotationof the screen (e.g., 180−θ=ψ), that the horizontal width of the screenis “W”, and that the vertical height of the screen is “L”.

The plane calculating circuit 103 sets the camera 150 a to havingcoordinates of (0, 0, 0), and two other plane coordinates of (−W/2, Lsin(ψ), L cos(ψ)) and (−W/2, L sin(θ), L cos(θ)). It is noted that thecamera 150 a is assumed at (0, 0, 0) using an assumed plane equation ofZ=0 but that any known plane equation can be used.

The plane calculating circuit 103 calculates the plane equation of thescreen using the three coordinate points via, for example, Cramer'sRule. In other words, the plane calculating circuit 103 calculates theplane of the screen using the current angle of the screen of the device150, a last angle of the screen of the device 150, and a position of thecamera to calculate the current plane equation of the screen of thedevice 150 as computed by the coordinate change computing circuit 102.

The intersection calculating circuit 104 calculates an intersection ofthe gaze vector calculated by the gaze vector calculating circuit 101with the current plane equation calculated by the plane calculatingcircuit 103. In other words, using the matrix created by the planecalculating circuit 103, the intersection calculating circuit 104calculates the intersection of the gaze vector to the current plane ofthe screen of the device 130.

FIG. 2 shows a high level flow chart for a method 200 of gaze tracking.

Step 201 calculates a parametric equation of a gaze vector passingthrough a pupil and an eye ball center of the user of a device 150 asdetected by the monocular camera 150 b.

Step 202 computes a first angle of the screen with respect to a base ofthe screen (e.g., a fixed surface such as the base of a lap-top or adesk of a web-cam) using an initialization calculation (e.g., as shownin FIG. 4) by bootstrapping the screen to keep the hinge angled at90-degrees from the base of the screen (or some other degree that ispre-determined by policy or recommendation). Step 202 furthercontinuously computes the angle based on the first angle of the screen.

Step 203 calculates the plane of the screen using the current angle ofthe screen of the device 150, a last angle of the screen of the device150, and a position of the camera to calculate the current planeequation of the screen of the device 150 as computed by the Step 202.

Step 204 calculates an intersection of the gaze vector calculated byStep 201 with the plane equation calculated by Step 203.

Therefore, the system 100 and method 200 can detect and measure therotation of a hinged plane of display with respect to the eye gaze, andcombine such rotation with three-dimensional movement of the cameradevice 130, in a setting where the camera is constant with respect tothe screen (e.g., a laptop computer, fixed webcam, etc.), for thepurpose of point of gaze localization to estimate the three-dimensionalgaze on the screen using, for example, one monocular RGB camera forinput, in absence of any sensor (such as accelerometer, depth sensoretc.), and without performing any calibration except just a one-timeinitialization of the system 100 and method 200.

That is, the system 100 and method 200 can detect and measure therotation of a hinged plane of display with respect to the eye gaze, andcombine such rotation with three-dimensional movement of the cameradevice, in a setting where the camera is constant with respect to thescreen (such as a laptop computer, fixed webcam), for the purpose ofpoint of gaze localization to better estimate the three-dimensional gazeon the screen using one monocular RGB camera for input, in absence ofany sensor (such as accelerometer, depth sensor etc.), and withoutperforming any additional screen calibration.

Therefore, the inventors have considered a non-abstract improvement to acomputer technology via an exemplary technical solution of method 100 tothe technical problem in which a system may track the three-dimensionalgaze of a user with a camera fixed with respect to a screen when theplane of the screen (e.g., angle of the plane) changes while the userviews the screen to which the gaze tracking system dynamically adjustswithout loss of accuracy or performance.

Exemplary Hardware Aspects, Using a Cloud Computing Environment

Although this detailed description includes an exemplary embodiment ofthe present invention in a cloud computing environment, it is to beunderstood that implementation of the teachings recited herein are notlimited to such a cloud computing environment. Rather, embodiments ofthe present invention are capable of being implemented in conjunctionwith any other type of computing environment now known or laterdeveloped.

Cloud computing is a model of service delivery for enabling convenient,on-demand network access to a shared pool of configurable computingresources (e.g. networks, network bandwidth, servers, processing,memory, storage, applications, virtual machines, and services) that canbe rapidly provisioned and released with minimal management effort orinteraction with a provider of the service. This cloud model may includeat least five characteristics, at least three service models, and atleast four deployment models.

Characteristics are as Follows:

On-demand self-service: a cloud consumer can unilaterally provisioncomputing capabilities, such as server time and network storage, asneeded automatically without requiring human interaction with theservice's provider.

Broad network access: capabilities are available over a network andaccessed through standard mechanisms that promote use by heterogeneousthin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling: the provider's computing resources are pooled to servemultiple consumers using a multi-tenant model, with different physicaland virtual resources dynamically assigned and reassigned according todemand. There is a sense of location independence in that the consumergenerally has no control or knowledge over the exact location of theprovided resources but may be able to specify location at a higher levelof abstraction (e.g., country, state, or datacenter).

Rapid elasticity: capabilities can be rapidly and elasticallyprovisioned, in some cases automatically, to quickly scale out andrapidly released to quickly scale in. To the consumer, the capabilitiesavailable for provisioning often appear to be unlimited and can bepurchased in any quantity at any time.

Measured service: cloud systems automatically control and optimizeresource use by leveraging a metering capability at some level ofabstraction appropriate to the type of service (e.g., storage,processing, bandwidth, and active user accounts). Resource usage can bemonitored, controlled, and reported providing transparency for both theprovider and consumer of the utilized service.

Service Models are as Follows:

Software as a Service (SaaS): the capability provided to the consumer isto use the provider's applications running on a cloud infrastructure.The applications are accessible from various client circuits through athin client interface such as a web browser (e.g., web-based e-mail).The consumer does not manage or control the underlying cloudinfrastructure including network, servers, operating systems, storage,or even individual application capabilities, with the possible exceptionof limited user-specific application configuration settings.

Platform as a Service (PaaS): the capability provided to the consumer isto deploy onto the cloud infrastructure consumer-created or acquiredapplications created using programming languages and tools supported bythe provider. The consumer does not manage or control the underlyingcloud infrastructure including networks, servers, operating systems, orstorage, but has control over the deployed applications and possiblyapplication hosting environment configurations.

Infrastructure as a Service (IaaS): the capability provided to theconsumer is to provision processing, storage, networks, and otherfundamental computing resources where the consumer is able to deploy andrun arbitrary software, which can include operating systems andapplications. The consumer does not manage or control the underlyingcloud infrastructure but has control over operating systems, storage,deployed applications, and possibly limited control of select networkingcomponents (e.g., host firewalls).

Deployment Models are as Follows:

Private cloud: the cloud infrastructure is operated solely for anorganization. It may be managed by the organization or a third party andmay exist on-premises or off-premises.

Community cloud: the cloud infrastructure is shared by severalorganizations and supports a specific community that has shared concerns(e.g., mission, security requirements, policy, and complianceconsiderations). It may be managed by the organizations or a third partyand may exist on-premises or off-premises.

Public cloud: the cloud infrastructure is made available to the generalpublic or a large industry group and is owned by an organization sellingcloud services.

Hybrid cloud: the cloud infrastructure is a composition of two or moreclouds (private, community, or public) that remain unique entities butare bound together by standardized or proprietary technology thatenables data and application portability (e.g., cloud bursting forload-balancing between clouds).

A cloud computing environment is service oriented with a focus onstatelessness, low coupling, modularity, and semantic interoperability.At the heart of cloud computing is an infrastructure comprising anetwork of interconnected nodes.

Referring now to FIG. 6, a schematic of an example of a cloud computingnode is shown. Cloud computing node 10 is only one example of a suitablecloud computing node and is not intended to suggest any limitation as tothe scope of use or functionality of embodiments of the inventiondescribed herein. Regardless, cloud computing node 10 is capable ofbeing implemented and/or performing any of the functionality set forthhereinabove.

In cloud computing node 10, there is a computer system/server 12, whichis operational with numerous other general purpose or special purposecomputing system environments or configurations. Examples of well-knowncomputing systems, environments, and/or configurations that may besuitable for use with computer system/server 12 include, but are notlimited to, personal computer systems, server computer systems, thinclients, thick clients, hand-held or laptop circuits, multiprocessorsystems, microprocessor-based systems, set top boxes, programmableconsumer electronics, network PCs, minicomputer systems, mainframecomputer systems, and distributed cloud computing environments thatinclude any of the above systems or circuits, and the like.

Computer system/server 12 may be described in the general context ofcomputer system-executable instructions, such as program modules, beingexecuted by a computer system. Generally, program modules may includeroutines, programs, objects, components, logic, data structures, and soon that perform particular tasks or implement particular abstract datatypes. Computer system/server 12 may be practiced in distributed cloudcomputing environments where tasks are performed by remote processingcircuits that are linked through a communications network. In adistributed cloud computing environment, program modules may be locatedin both local and remote computer system storage media including memorystorage circuits.

As shown in FIG. 6, computer system/server 12 in cloud computing node 10is shown in the form of a general-purpose computing circuit. Thecomponents of computer system/server 12 may include, but arc not limitedto, one or more processors or processing units 16, a system memory 28,and a bus 18 that couples various system components including systemmemory 28 to processor 16.

Bus 18 represents one or more of any of several types of bus structures,including a memory bus or memory controller, a peripheral bus, anaccelerated graphics port, and a processor or local bus using any of avariety of bus architectures. By way of example, and not limitation,such architectures include Industry Standard Architecture (ISA) bus,Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, VideoElectronics Standards Association (VESA) local bus, and PeripheralComponent Interconnects (PCI) bus.

Computer system/server 12 typically includes a variety of computersystem readable media. Such media may be any available media that isaccessible by computer system/server 12, and it includes both volatileand non-volatile media, removable and non-removable media.

System memory 28 can include computer system readable media in the formof volatile memory, such as random access memory (RAM) 30 and/or cachememory 32. Computer system/server 12 may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 34 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(not shown and typically called a “hard drive”). Although not shown, amagnetic disk drive for reading from and writing to a removable,non-volatile magnetic disk (e.g., a “floppy disk”), and an optical diskdrive for reading from or writing to a removable, non-volatile opticaldisk such as a CD-ROM, DVD-ROM or other optical media can be provided.In such instances, each can be connected to bus 18 by one or more datamedia interfaces. As will be further depicted and described below,memory 28 may include at least one program product having a set (e.g.,at least one) of program modules that are configured to carry out thefunctions of embodiments of the invention.

Program/utility 40, having a set (at least one) of program modules 42,may be stored in memory 28 by way of example, and not limitation, aswell as an operating system, one or more application programs, otherprogram modules, and program data. Each of the operating system, one ormore application programs, other program modules, and program data orsome combination thereof, may include an implementation of a networkingenvironment. Program modules 42 generally carry out the functions and/ormethodologies of embodiments of the invention as described herein.

Computer system/server 12 may also communicate with one or more externalcircuits 14 such as a keyboard, a pointing circuit, a display 24, etc.;one or more circuits that enable a user to interact with computersystem/server 12; and/or any circuits (e.g., network card, modem, etc.)that enable computer system/server 12 to communicate with one or moreother computing circuits. Such communication can occur via Input/Output(I/O) interfaces 22. Still yet, computer system/server 12 cancommunicate with one or more networks such as a local area network(LAN), a general wide area network (WAN), and/or a public network (e.g.,the Internet) via network adapter 20. As depicted, network adapter 20communicates with the other components of computer system/server 12 viabus 18. It should be understood that although not shown, other hardwareand/or software components could be used in conjunction with computersystem/server 12. Examples, include, but are not limited to: microcode,circuit drivers, redundant processing units, external disk drive arrays,RAID systems, tape drives, and data archival storage systems, etc.

Referring now to FIG. 7, illustrative cloud computing environment 50 isdepicted. As shown, cloud computing environment 50 comprises one or morecloud computing nodes 10 with which local computing circuits used bycloud consumers, such as, for example, personal digital assistant (PDA)or cellular telephone 54A, desktop computer 54B, laptop computer 54C,and/or automobile computer system 54N may communicate. Nodes 10 maycommunicate with one another. They may be grouped (not shown) physicallyor virtually, in one or more networks, such as Private, Community,Public, or Hybrid clouds as described hereinabove, or a combinationthereof. This allows cloud computing environment 50 to offerinfrastructure, platforms and/or software as services for which a cloudconsumer does not need to maintain resources on a local computingcircuit. It is understood that the types of computing circuits 54A-Nshown in FIG. 7 are intended to be illustrative only and that computingnodes 10 and cloud computing environment 50 can communicate with anytype of computerized circuit over any type of network and/or networkaddressable connection (e.g., using a web browser).

Referring now to FIG. 8, a set of functional abstraction layers providedby cloud computing environment 50 (FIG. 7) is shown. It should beunderstood in advance that the components, layers, and functions shownin FIG. 8 are intended to be illustrative only and embodiments of theinvention are not limited thereto. As depicted, the following layers andcorresponding functions are provided:

Hardware and software layer 60 includes hardware and softwarecomponents. Examples of hardware components include: mainframes 61; RISC(Reduced Instruction Set Computer) architecture based servers 62;servers 63; blade servers 64; storage circuits 65; and networks andnetworking components 66. In some embodiments, software componentsinclude network application server software 67 and database software 68.

Virtualization layer 70 provides an abstraction layer from which thefollowing examples of virtual entities may be provided: virtual servers71; virtual storage 72; virtual networks 73, including virtual privatenetworks; virtual applications and operating systems 74; and virtualclients 75.

In one example, management layer 80 may provide the functions describedbelow. Resource provisioning 81 provides dynamic procurement ofcomputing resources and other resources that are utilized to performtasks within the cloud computing environment. Metering and Pricing 82provide cost tracking as resources are utilized within the cloudcomputing environment, and billing or invoicing for consumption of theseresources. In one example, these resources may comprise applicationsoftware licenses. Security provides identity verification for cloudconsumers and tasks, as well as protection for data and other resources.User portal 83 provides access to the cloud computing environment forconsumers and system administrators. Service level management 84provides cloud computing resource allocation and management such thatrequired service levels are met. Service Level Agreement (SLA) planningand fulfillment 85 provide pre-arrangement for, and procurement of,cloud computing resources for which a future requirement is anticipatedin accordance with an SLA.

Workloads layer 90 provides examples of functionality for which thecloud computing environment may be utilized. Examples of workloads andfunctions which may be provided from this layer include: mapping andnavigation 91; software development and lifecycle management 92; virtualclassroom education delivery 93; data analytics processing 94;transaction processing 95; and, more particularly relative to thepresent invention, the gaze tracking system 100 described herein.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

Further, Applicant's intent is to encompass the equivalents of all claimelements, and no amendment to any claim of the present applicationshould be construed as a disclaimer of any interest in or right to anequivalent of any element or feature of the amended claim.

What is claimed is:
 1. A gaze tracking system for tracking an eye gazeon a screen of a device including a single monocular camera, the systemcomprising: a processor, and a memory, the memory storing instructionsto cause the processor to perform: measuring a rotation of a hingedplane of a display screen with respect to the eye gaze; combining therotation with a three-dimensional movement of the camera, a position ofthe camera being constant with respect to the display screen; andestimating a point of gaze localization on the display screen using thesingle monocular camera as the input, in absence of a sensor, andwithout performing a display screen calibration.
 2. A gaze trackingmethod for tracking an eye gaze on a screen of a device including asingle monocular camera, the method comprising: measuring a rotation ofa hinged plane of a display screen with respect to the eye gaze;combining the rotation with a three-dimensional movement of the camera,a position of the camera being constant with respect to the displayscreen; and estimating a point of gaze localization on the displayscreen using the single monocular camera as the input, in absence of asensor, and without performing a display screen calibration.
 3. Anon-transitory computer-readable recording medium recording a gazetracking program for tracking an eye gaze on a screen of a deviceincluding a single monocular camera, the program causing a computer toperform: measuring a rotation of a hinged plane of a display screen withrespect to the eye gaze; combining the rotation with a three-dimensionalmovement of the camera, a position of the camera being constant withrespect to the display screen; and estimating a point of gazelocalization on the display screen using the single monocular camera asthe input, in absence of a sensor, and without performing a displayscreen calibration.